#include <stm32f0xx.h>
#include "const.h"

#define	F8CLKM	8000000

#define	GPIO_LED_RED	GPIOB
#define	GPIO_LED_RED_PIN	GPIO_Pin_9
#define	GPIO_LED_ORG	GPIOC
#define	GPIO_LED_ORG_PIN	GPIO_Pin_13
#define	GPIO_LED_BLUE_GREEN	GPIOF
#define	GPIO_LED_BLUE_PIN	GPIO_Pin_0
#define	GPIO_LED_GREEN_PIN	GPIO_Pin_1

#define	GPIO_ADDR	GPIOB
#define	GPIO_ADDR_PIN	(GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8)

#define	GPIO_485	GPIOA
#define	GPIO_485RX_PIN	GPIO_Pin_10
#define	GPIO_485TX_PIN	GPIO_Pin_9
#define	GPIO_485EN_PIN	GPIO_Pin_8

#define	ENABLE_TX()			GPIO_SetBits(GPIO_485,GPIO_485EN_PIN)
#define	DISABLE_TX()		GPIO_ResetBits(GPIO_485,GPIO_485EN_PIN)


#define	GPIO_DSENSOR1	GPIOB
#define	GPIO_DS1_PIN	GPIO_Pin_4
#define	GPIO_DSENSOR2	GPIOB
#define	GPIO_DS2_PIN	GPIO_Pin_3
#define	GPIO_DSENSOR3	GPIOA
#define	GPIO_DS3_PIN	GPIO_Pin_15
//#define	GPIO_DSENSOR4	GPIOA
//#define	GPIO_DS4_PIN	GPIO_Pin_14
#define	GPIO_DSENSOR5	GPIOF
#define	GPIO_DS5_PIN	GPIO_Pin_7
#define	GPIO_DSENSOR6	GPIOF
#define	GPIO_DS6_PIN	GPIO_Pin_6

//#define	GPIO_FSENSOR1	GPIOA
//#define	GPIO_FS1_PIN	GPIO_Pin_13
#define	GPIO_KEY	GPIOA
#define	GPIO_KEY_PIN	GPIO_Pin_12
#define	GPIO_FSENSOR3	GPIOA
#define	GPIO_FS3_PIN	GPIO_Pin_11
#define	GPIO_FSENSOR4	GPIOB
#define	GPIO_FS4_PIN	GPIO_Pin_15
#define	GPIO_FSENSOR5	GPIOB
#define	GPIO_FS5_PIN	GPIO_Pin_14
#define	GPIO_FSENSOR6	GPIOB
#define	GPIO_FS6_PIN	GPIO_Pin_13

#define	GPIO_PMOS1	GPIOB
#define	GPIO_PMOS1_PIN	GPIO_Pin_12
#define	GPIO_PMOS2	GPIOB
#define	GPIO_PMOS2_PIN	GPIO_Pin_2
#define	GPIO_DCM1IN1	GPIOB
#define	GPIO_DCM1IN1_PIN	GPIO_Pin_10
#define	GPIO_DCM1IN2	GPIOB
#define	GPIO_DCM1IN2_PIN	GPIO_Pin_11
#define	GPIO_DCM2IN1	GPIOB
#define	GPIO_DCM2IN1_PIN	GPIO_Pin_0
#define	GPIO_DCM2IN2	GPIOB
#define	GPIO_DCM2IN2_PIN	GPIO_Pin_1

#define	GPIO_STEPMOTOR	GPIOA
#define	GPIO_STEPM_RST_PIN	GPIO_Pin_3
#define	GPIO_STEPM1_EN_PIN	GPIO_Pin_0
#define	GPIO_STEPM1_CLK_PIN	GPIO_Pin_1
#define	GPIO_STEPM1_DIR_PIN	GPIO_Pin_2
#define	GPIO_STEPM2_EN_PIN	GPIO_Pin_5
#define	GPIO_STEPM2_CLK_PIN	GPIO_Pin_4
#define	GPIO_STEPM2_DIR_PIN	GPIO_Pin_6
#define	GPIO_STEPM2_REF_PIN	GPIO_Pin_7


#define	MONITOR_TIMER	TIM2 
#define	MONITOR_IRQ	TIM2_IRQn
#define	MONITOR_PeriphClockCmd_Enable()	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE)

#define	PMOS1_TIMER	TIM3
#define	PMOS1_IRQ	TIM3_IRQn

#define	PMOS2_TIMER	TIM6
#define	PMOS2_IRQ	TIM6_DAC_IRQn

#define	PMOS1_TIMER	TIM3
#define	PMOS1_IRQ	TIM3_IRQn

#define	DMotor1_TIMER	TIM14
#define	DMotor1_IRQ	TIM14_IRQn
#define	DMotor2_TIMER	TIM15
#define	DMotor2_IRQ	TIM15_IRQn

#define	StepMotor1_TIMER	TIM16
#define	StepMotor1_IRQ	TIM16_IRQn
#define	StepMotor2_TIMER	TIM17
#define	StepMotor2_IRQ	TIM17_IRQn
